bitkeeper revision 1.1159.1.140 (413f68b3CREFxIOSuiOduTrHnibufQ)
authorkaf24@freefall.cl.cam.ac.uk <kaf24@freefall.cl.cam.ac.uk>
Wed, 8 Sep 2004 20:16:51 +0000 (20:16 +0000)
committerkaf24@freefall.cl.cam.ac.uk <kaf24@freefall.cl.cam.ac.uk>
Wed, 8 Sep 2004 20:16:51 +0000 (20:16 +0000)
Fix ClearForeignPage defintion in Linux 2.4 and 2.6.

linux-2.4.27-xen-sparse/include/linux/mm.h
linux-2.6.8.1-xen-sparse/include/linux/page-flags.h

index 523bcffd53666f756ff005e4aa807f9a8989a705..bd7d65c77c71c8ef2c31c0e15b234692edf7e587 100644 (file)
@@ -336,7 +336,10 @@ typedef struct page {
        set_bit(PG_foreign, &(page)->flags);    \
        (page)->mapping = (void *)dtor;         \
 } while (0)
-#define ClearPageForeign(page) clear_bit(PG_foreign, &(page)->flags)
+#define ClearPageForeign(page) do {            \
+       clear_bit(PG_foreign, &(page)->flags);  \
+       (page)->mapping = NULL;                 \
+} while (0)
 #define PageForeignDestructor(page)    \
        ( (void (*) (struct page *)) (page)->mapping )
 #else
index b155a2095374c529a3aaa7f20ee4d6bdb9300526..fdf0d3f8ecee8f3d7a12e06a987224b58461b475 100644 (file)
@@ -304,7 +304,10 @@ extern unsigned long __read_page_state(unsigned offset);
        set_bit(PG_foreign, &(page)->flags);    \
        (page)->mapping = (void *)dtor;         \
 } while (0)
-#define ClearPageForeign(page) clear_bit(PG_foreign, &(page)->flags)
+#define ClearPageForeign(page) do {            \
+       clear_bit(PG_foreign, &(page)->flags);  \
+       (page)->mapping = NULL;                 \
+} while (0)
 #define PageForeignDestructor(page)    \
        ( (void (*) (struct page *)) (page)->mapping )
 #else